import axios from 'axios'
import {Message} from 'element-ui'
import {getToken} from "@/utils/auth";

// 创建axios
const service = axios.create({
  // 设置baseURL（url = base url + request url）
  baseURL: process.env.VUE_APP_BASE_API,
  // 跨域请求时，携带cookie
  // withCredentials: true,
  // 请求超时时间：20s
  timeout: 20000
})

// 请求拦截器
service.interceptors.request.use(
  config => {
    // 发送请求前操作

    // 给每个请求头，加上TOKEN：UserJwtToken
    config.headers['UserJwtToken'] = getToken()

    return config
  },
  error => {
    // 请求出错时操作
    console.log(error)
    return Promise.reject(error)
  }
)

// 响应拦截器
service.interceptors.response.use(
  // 如果想获取完整http响应信息（如headers,status），可以直接返回response
  response => {
    const res = response.data
    if (res.code == 200) {
      return res
    } else {
      console.log("response：", response);
      Message({message: res.message, type: 'error', duration: 3 * 1000})
      return Promise.reject(new Error(res.message || 'Error'))
    }
  }, error => {
    console.log('err' + error) // for debug
    return Promise.reject(error)
  }
)

export default service
